{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Concepts in Spatial Linear Modelling\n",
    "\n",
    "### Data Borrowing in Supervised Learning"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import libpysal.api as lp\n",
    "import geopandas as gpd\n",
    "import pandas as pd\n",
    "import shapely.geometry as shp\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "listings = pd.read_csv('./data/berlin-listings.csv.gz')\n",
    "listings['geometry'] = listings[['longitude','latitude']].apply(shp.Point, axis=1)\n",
    "listings = gpd.GeoDataFrame(listings)\n",
    "listings.crs = {'init':'epsg:4269'}\n",
    "listings = listings.to_crs(epsg=3857)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f21293a1f28>"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "listings.sort_values('price').plot('price', cmap='plasma')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Kernel Regressions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Kernel regressions are one exceptionally common way to allow observations to \"borrow strength\" from nearby observations. \n",
    "\n",
    "However, when working with spatial data, there are *two simultaneous senses of what is near:* \n",
    "- things that similar in attribute (classical kernel regression)\n",
    "- things that are similar in spatial position (spatial kernel regression)\n",
    "\n",
    "Below, we'll walk through how to use scikit to fit these two types of kernel regressions, show how it's not super simple to mix the two approaches together, and refer to an approach that does this correctly in another package. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, though, let's try to predict the log of an Airbnb's nightly price based on a few factors:\n",
    "- accommodates: the number of people the airbnb can accommodate\n",
    "- review_scores_rating: the aggregate rating of the listing\n",
    "- bedrooms: the number of bedrooms the airbnb has\n",
    "- bathrooms: the number of bathrooms the airbnb has\n",
    "- beds: the number of beds the airbnb offers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "model_data = listings[['accommodates', 'review_scores_rating', \n",
    "                       'bedrooms', 'bathrooms', 'beds', \n",
    "                       'price', 'geometry']].dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "Xnames = ['accommodates', 'review_scores_rating', \n",
    "               'bedrooms', 'bathrooms', 'beds' ]\n",
    "X = model_data[Xnames].values\n",
    "X = X.astype(float)\n",
    "y = np.log(model_data[['price']].values)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Further, since each listing has a location, I'll extract the set of spatial coordinates coordinates for each listing."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "coordinates = np.vstack(model_data.geometry.apply(lambda p: np.hstack(p.xy)).values)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "scikit neighbor regressions are contained in the `sklearn.neighbors` module, and there are two main types:\n",
    "- `KNeighborsRegressor`, which uses a k-nearest neighborhood of observations around each focal site\n",
    "- `RadiusNeighborsRegressor`, which considers all observations within a fixed radius around each focal site.\n",
    "\n",
    "Further, these methods can use inverse distance weighting to rank the relative importance of sites around each focal; in this way, near things are given more weight than far things, even when there's a lot of near things. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sklearn.neighbors as skn\n",
    "import sklearn.metrics as skm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [],
   "source": [
    "shuffle = np.random.permutation(len(y))\n",
    "train,test = shuffle[:14000],shuffle[14000:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So, let's fit three models:\n",
    "- `spatial`: using inverse distance weighting on the nearest 500 neighbors geograpical space\n",
    "- `attribute`: using inverse distance weighting on the nearest 500 neighbors in attribute space\n",
    "- `both`: using inverse distance weighting in both geographical and attribute space. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "KNNR = skn.KNeighborsRegressor(weights='distance', n_neighbors=500)\n",
    "spatial = KNNR.fit(coordinates[train,:],\n",
    "                  y[train,:])\n",
    "KNNR = skn.KNeighborsRegressor(weights='distance', n_neighbors=500)\n",
    "attribute = KNNR.fit(X[train,:],\n",
    "                    y[train,])\n",
    "KNNR = skn.KNeighborsRegressor(weights='distance', n_neighbors=500)\n",
    "both = KNNR.fit(np.hstack((coordinates,X))[train,:],\n",
    "                y[train,:])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To score them, I'm going to grab their out of sample prediction accuracy and get their % explained variance:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "sp_ypred =  spatial.predict(coordinates[test,:])\n",
    "att_ypred = attribute.predict(X[test,:])\n",
    "both_ypred = both.predict(np.hstack((X,coordinates))[test,:])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.13077369592531252, 0.3142191564086396, -2.6587958501522735e-09)"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(skm.explained_variance_score(y[test,], sp_ypred),\n",
    " skm.explained_variance_score(y[test,], att_ypred),\n",
    " skm.explained_variance_score(y[test,], both_ypred))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you don't know $X$, using $Wy$ would be better than nothing, but it works nowhere near as well... less than half of the variance that is explained by nearness in feature/attribute space is explained by nearness in geographical space. \n",
    "\n",
    "Making things even worse, simply glomming on the geographical information to the feature set makes the model perform horribly. \n",
    "\n",
    "*There must be another way!*\n",
    "\n",
    "One method that can exploit the fact that local data may be more informative in predicting $y$ at site $i$ than distant data is Geographically Weighted Regression, a type of Generalized Additive Spatial Model. Kind of like a Kernel Regression, GWR conducts a bunch of regressions at each training site only considering data near that site. This means it works like the kernel regressions above, but uses *both* the coordinates *and* the data in $X$ to predict $y$ at each site. It optimizes its sense of \"local\" depending on some information criteria or fit score.\n",
    "\n",
    "You can find this in the `gwr` package, and significant development is ongoing on this at `https://github.com/pysal/gwr`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Data Borrowing"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Another common case where these weights are used are in \"feature engineering.\" Using the weights matrix, you can construct neighbourhood averages of the data matrix and use these as synthetic features in your model. These often have a strong relationship to the outcome as well, since spatial data is often smooth and attributes of nearby sites often have a spillover impact on each other. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "from libpysal.weights.util import fill_diagonal"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, we'll construct a Kernel weight from the data that we have, make it an adaptive Kernel bandwidth, and make sure that our kernel weights don't have any self-neighbors. Since we've got the data at each site anyway, we probably shouldn't use that data *again* when we construct our neighborhood-smoothed syntetic features.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "kW = lp.Kernel.from_dataframe(model_data, fixed=False, function='gaussian', k=100)\n",
    "kW = fill_diagonal(kW, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "WX = lp.lag_spatial(kW, X)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "I like `statsmodels` regression summary tables, so I'll pop it up here. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "import statsmodels.api as sm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "Xtable = pd.DataFrame(X, columns=Xnames)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below are the results for the model with only the covariates used above:\n",
    "- accommodates: the number of people the airbnb can accommodate\n",
    "- review_scores_rating: the aggregate rating of the listing\n",
    "- bedrooms: the number of bedrooms the airbnb has\n",
    "- bathrooms: the number of bathrooms the airbnb has\n",
    "- beds: the number of beds the airbnb offers\n",
    "\n",
    "We've not used any of our synthetic features in `WX`. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>            <td>y</td>        <th>  R-squared:         </th> <td>   0.290</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.290</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>   1269.</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Fri, 04 May 2018</td> <th>  Prob (F-statistic):</th>  <td>  0.00</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>20:27:42</td>     <th>  Log-Likelihood:    </th> <td> -9260.8</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td> 15516</td>      <th>  AIC:               </th> <td>1.853e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td> 15510</td>      <th>  BIC:               </th> <td>1.858e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>     5</td>      <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "            <td></td>              <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th>                <td>    2.9682</td> <td>    0.044</td> <td>   67.590</td> <td> 0.000</td> <td>    2.882</td> <td>    3.054</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>accommodates</th>         <td>    0.1882</td> <td>    0.004</td> <td>   44.362</td> <td> 0.000</td> <td>    0.180</td> <td>    0.197</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>review_scores_rating</th> <td>    0.0033</td> <td>    0.000</td> <td>    7.378</td> <td> 0.000</td> <td>    0.002</td> <td>    0.004</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>bedrooms</th>             <td>    0.1427</td> <td>    0.008</td> <td>   18.503</td> <td> 0.000</td> <td>    0.128</td> <td>    0.158</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>bathrooms</th>            <td>    0.0062</td> <td>    0.012</td> <td>    0.497</td> <td> 0.619</td> <td>   -0.018</td> <td>    0.031</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>beds</th>                 <td>   -0.0482</td> <td>    0.005</td> <td>   -9.221</td> <td> 0.000</td> <td>   -0.058</td> <td>   -0.038</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>156.822</td> <th>  Durbin-Watson:     </th> <td>   1.716</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td>  <th>  Jarque-Bera (JB):  </th> <td> 265.898</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td>-0.005</td>  <th>  Prob(JB):          </th> <td>1.82e-58</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 3.641</td>  <th>  Cond. No.          </th> <td>1.17e+03</td>\n",
       "</tr>\n",
       "</table>"
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                      y   R-squared:                       0.290\n",
       "Model:                            OLS   Adj. R-squared:                  0.290\n",
       "Method:                 Least Squares   F-statistic:                     1269.\n",
       "Date:                Fri, 04 May 2018   Prob (F-statistic):               0.00\n",
       "Time:                        20:27:42   Log-Likelihood:                -9260.8\n",
       "No. Observations:               15516   AIC:                         1.853e+04\n",
       "Df Residuals:                   15510   BIC:                         1.858e+04\n",
       "Df Model:                           5                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "========================================================================================\n",
       "                           coef    std err          t      P>|t|      [0.025      0.975]\n",
       "----------------------------------------------------------------------------------------\n",
       "const                    2.9682      0.044     67.590      0.000       2.882       3.054\n",
       "accommodates             0.1882      0.004     44.362      0.000       0.180       0.197\n",
       "review_scores_rating     0.0033      0.000      7.378      0.000       0.002       0.004\n",
       "bedrooms                 0.1427      0.008     18.503      0.000       0.128       0.158\n",
       "bathrooms                0.0062      0.012      0.497      0.619      -0.018       0.031\n",
       "beds                    -0.0482      0.005     -9.221      0.000      -0.058      -0.038\n",
       "==============================================================================\n",
       "Omnibus:                      156.822   Durbin-Watson:                   1.716\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              265.898\n",
       "Skew:                          -0.005   Prob(JB):                     1.82e-58\n",
       "Kurtosis:                       3.641   Cond. No.                     1.17e+03\n",
       "==============================================================================\n",
       "\n",
       "Warnings:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "[2] The condition number is large, 1.17e+03. This might indicate that there are\n",
       "strong multicollinearity or other numerical problems.\n",
       "\"\"\""
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "onlyX = sm.OLS(y,sm.add_constant(Xtable)).fit()\n",
    "onlyX.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Then, we could fit a model using the neighbourhood average synthetic features as well:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "WXtable = pd.DataFrame(WX, columns=['lag_{}'.format(name) for name in Xnames])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "XWXtable = pd.concat((Xtable,WXtable),axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<caption>OLS Regression Results</caption>\n",
       "<tr>\n",
       "  <th>Dep. Variable:</th>            <td>y</td>        <th>  R-squared:         </th> <td>   0.311</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Model:</th>                   <td>OLS</td>       <th>  Adj. R-squared:    </th> <td>   0.311</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Method:</th>             <td>Least Squares</td>  <th>  F-statistic:       </th> <td>   701.4</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Date:</th>             <td>Fri, 04 May 2018</td> <th>  Prob (F-statistic):</th>  <td>  0.00</td>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Time:</th>                 <td>20:27:42</td>     <th>  Log-Likelihood:    </th> <td> -9026.9</td> \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>No. Observations:</th>      <td> 15516</td>      <th>  AIC:               </th> <td>1.808e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Residuals:</th>          <td> 15505</td>      <th>  BIC:               </th> <td>1.816e+04</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Df Model:</th>              <td>    10</td>      <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Covariance Type:</th>      <td>nonrobust</td>    <th>                     </th>     <td> </td>    \n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "              <td></td>                <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>const</th>                    <td>    2.7158</td> <td>    0.114</td> <td>   23.723</td> <td> 0.000</td> <td>    2.491</td> <td>    2.940</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>accommodates</th>             <td>    0.1829</td> <td>    0.004</td> <td>   43.616</td> <td> 0.000</td> <td>    0.175</td> <td>    0.191</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>review_scores_rating</th>     <td>    0.0035</td> <td>    0.000</td> <td>    8.036</td> <td> 0.000</td> <td>    0.003</td> <td>    0.004</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>bedrooms</th>                 <td>    0.1465</td> <td>    0.008</td> <td>   19.126</td> <td> 0.000</td> <td>    0.131</td> <td>    0.161</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>bathrooms</th>                <td>   -0.0135</td> <td>    0.012</td> <td>   -1.087</td> <td> 0.277</td> <td>   -0.038</td> <td>    0.011</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>beds</th>                     <td>   -0.0448</td> <td>    0.005</td> <td>   -8.616</td> <td> 0.000</td> <td>   -0.055</td> <td>   -0.035</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>lag_accommodates</th>         <td>    0.0162</td> <td>    0.001</td> <td>   16.632</td> <td> 0.000</td> <td>    0.014</td> <td>    0.018</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>lag_review_scores_rating</th> <td>   -0.0004</td> <td> 4.29e-05</td> <td>   -9.279</td> <td> 0.000</td> <td>   -0.000</td> <td>   -0.000</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>lag_bedrooms</th>             <td>    0.0001</td> <td>    0.002</td> <td>    0.086</td> <td> 0.931</td> <td>   -0.003</td> <td>    0.003</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>lag_bathrooms</th>            <td>    0.0240</td> <td>    0.002</td> <td>   10.595</td> <td> 0.000</td> <td>    0.020</td> <td>    0.028</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>lag_beds</th>                 <td>   -0.0150</td> <td>    0.001</td> <td>  -13.860</td> <td> 0.000</td> <td>   -0.017</td> <td>   -0.013</td>\n",
       "</tr>\n",
       "</table>\n",
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "  <th>Omnibus:</th>       <td>163.213</td> <th>  Durbin-Watson:     </th> <td>   1.786</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Prob(Omnibus):</th> <td> 0.000</td>  <th>  Jarque-Bera (JB):  </th> <td> 278.468</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Skew:</th>          <td>-0.023</td>  <th>  Prob(JB):          </th> <td>3.40e-61</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Kurtosis:</th>      <td> 3.655</td>  <th>  Cond. No.          </th> <td>9.71e+04</td>\n",
       "</tr>\n",
       "</table>"
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.summary.Summary'>\n",
       "\"\"\"\n",
       "                            OLS Regression Results                            \n",
       "==============================================================================\n",
       "Dep. Variable:                      y   R-squared:                       0.311\n",
       "Model:                            OLS   Adj. R-squared:                  0.311\n",
       "Method:                 Least Squares   F-statistic:                     701.4\n",
       "Date:                Fri, 04 May 2018   Prob (F-statistic):               0.00\n",
       "Time:                        20:27:42   Log-Likelihood:                -9026.9\n",
       "No. Observations:               15516   AIC:                         1.808e+04\n",
       "Df Residuals:                   15505   BIC:                         1.816e+04\n",
       "Df Model:                          10                                         \n",
       "Covariance Type:            nonrobust                                         \n",
       "============================================================================================\n",
       "                               coef    std err          t      P>|t|      [0.025      0.975]\n",
       "--------------------------------------------------------------------------------------------\n",
       "const                        2.7158      0.114     23.723      0.000       2.491       2.940\n",
       "accommodates                 0.1829      0.004     43.616      0.000       0.175       0.191\n",
       "review_scores_rating         0.0035      0.000      8.036      0.000       0.003       0.004\n",
       "bedrooms                     0.1465      0.008     19.126      0.000       0.131       0.161\n",
       "bathrooms                   -0.0135      0.012     -1.087      0.277      -0.038       0.011\n",
       "beds                        -0.0448      0.005     -8.616      0.000      -0.055      -0.035\n",
       "lag_accommodates             0.0162      0.001     16.632      0.000       0.014       0.018\n",
       "lag_review_scores_rating    -0.0004   4.29e-05     -9.279      0.000      -0.000      -0.000\n",
       "lag_bedrooms                 0.0001      0.002      0.086      0.931      -0.003       0.003\n",
       "lag_bathrooms                0.0240      0.002     10.595      0.000       0.020       0.028\n",
       "lag_beds                    -0.0150      0.001    -13.860      0.000      -0.017      -0.013\n",
       "==============================================================================\n",
       "Omnibus:                      163.213   Durbin-Watson:                   1.786\n",
       "Prob(Omnibus):                  0.000   Jarque-Bera (JB):              278.468\n",
       "Skew:                          -0.023   Prob(JB):                     3.40e-61\n",
       "Kurtosis:                       3.655   Cond. No.                     9.71e+04\n",
       "==============================================================================\n",
       "\n",
       "Warnings:\n",
       "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n",
       "[2] The condition number is large, 9.71e+04. This might indicate that there are\n",
       "strong multicollinearity or other numerical problems.\n",
       "\"\"\""
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "withWX = sm.OLS(y,sm.add_constant(XWXtable)).fit()\n",
    "withWX.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This gains a nice bump in the model fit with no significant hit to model complexity. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Going Further"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We could also use a spatial autoregressive model to further improve fit. This ceases to be estimatable in `statsmodels` and instead requires `pysal.spreg`, the spatial regression submodule of PySAL. Generalized method of moments estimators are available in `pysal.spreg.GM_Lag`, and maximum likelihood methods in `pysal.spreg.ML_Lag`. \n",
    "\n",
    "These methods are often harder to fit, though, so like `gwr`, they may be less performant on big data. But, you can usually achieve a gain in fit for no significant increase in the number of terms by using these models. "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (gds)",
   "language": "python",
   "name": "gds"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
